#include "Common.hpp"

int main(int argc,char*argv[])
{
    if(argc!=3)
    {
        std::cout<<"请输入正确的参数例如: "<<" ./可执行程序 ip port"<<std::endl;
        exit(USAGE_ERR);
    }
    std::string serveip=argv[1];
    uint16_t serveport=std::stoi(argv[2]);

    int socketfd=socket(AF_INET,SOCK_STREAM,0);
    if(socketfd<0)
    {
        LOG(FATAL)<<"socketfd create error";
        exit(SOCKET_ERR);
    }
    
    InetAddr local(serveip,serveport);
    int m=connect(socketfd,local.CompulsoryNetAddr(),local.AddrLen());
    if(m<0)
    {
        LOG(FATAL)<<"connect error";
        exit(CONNECT_ERR);
    }
    // LOG(INFO)<<"connnect success";

    while(true)
    {
        //先写，在读
        std::string line;
        std::cout<<"Please Enter# ";
        std::getline(std::cin,line);
        if(line.empty())continue;
        write(socketfd,line.c_str(),line.size());

        char buffer[1024];
        memset(buffer,0,sizeof(buffer));
        //这里的问题，读的时候None和输入连接在一起了
        ssize_t n=read(socketfd,buffer,sizeof(buffer)-1);
        if(n>0)
        {
            buffer[n]=0;
            //就是这里的问题，但是改了后还是中间没有分割输出在一起了，一会修改
            std::cout<<"serve "<<buffer<<std::endl;
        }
    }
    close(socketfd);
    return 0;   
}